<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        // call apply  bind
        //    共同点：三个都能改变函数内 this 的执行
        //    不同点：
        //         1. call apply 是会调用的。
        //         2. bind 不会调用，是返回了一个新的函数，那个函数已经对 this 进行了绑定



        const fupo = {
            name: '富婆',
            say(){
                console.log(`这是 ${this.name}`);
            }
        }

        const ds = {
            name: '屌丝'
        }


        fupo.say();

        // call 和 apply 都能调用函数。区别是？
        // fupo.say.call(ds);  // 把函数内部的 this 指向变成了 ds
        fupo.say.apply(ds);  // 把函数内部的 this 指向变成了 ds

        // 小结1：
        // 1. 普通函数定义的时候，其实并不能确定 this 的指向。
        // 2. 普通函数在被调用的时候才会确定 this 的指向。

    </script>
</body>
</html>